//
//  ScenesFOA.h
//  ScenesAudioMix
//
//  Created by Branch on 2017/5/10.
//  Copyright © 2017年 branch. All rights reserved.
//

#ifndef __ScenesAudioMix_ScenesFOA_H__
#define __ScenesAudioMix_ScenesFOA_H__
#include <stdint.h>


#ifdef __cplusplus
extern "C" {
#endif

/**
 打开FOA音频转换器
 
 @param nsamples 一次处理音频的采样数，目前支持输入 ：1024，输入其他数值都会返回失败
 @return 成功返回 0，失败负值
 */
int scs_openFoaMixer(uint32_t nsamples);


/**
 关闭FOA音频转换器
 */
void scs_closeFoaMixer();


/**
 把一段四声道的音频转换成双声道的立体声。
 
 输入的数据格式为浮点型平面格式 （ffmpeg中的：AV_SAMPLE_FMT_FLTP）
 
 输入输出数据应该都是nsamples个采样（scs_openFoaMixer函数的输入参数），也就是说
 dataW，dataY，dataZ，dataX，dataL，dataR的buff长度都应该是：sizeof(float)*nsamples
 
 @param dataW FOA源音频的W通道数据地址
 @param dataY FOA源音频的Y通道数据地址
 @param dataZ FOA源音频的Z通道数据地址
 @param dataX FOA源音频的X通道数据地址
 @param matrix4 当前VR场景的旋转矩阵（4x4 column-major 的矩阵）
 @param dataL 接收输出双声道的左声道的buff地址
 @param dataR 接收输出双声道的右声道的buff地址
 @return 成功返回 0，失败返回负值
 */
int scs_processFoaAudio(float* dataW,float* dataY,float* dataZ,float* dataX,
                      float* matrix4,float* dataL,float* dataR);

    
    
#ifdef __cplusplus
}
#endif


#endif /* __ScenesAudioMix_ScenesFOA_H__ */
